/*
 * The contents of this web application are subject to the Mozilla Public License Version 
 * 1.1 (the "License"); you may not use this web application except in compliance with 
 * the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/.
 * 
 * Software distributed under the License is distributed on an "AS IS" basis, 
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 
 * for the specific language governing rights and limitations under the License.
 * 
 * The Original Code is owned by and the Initial Developer of the Original Code is 
 * Composite A/S (Danish business reg.no. 21744409). All Rights Reserved
 * 
 * Section 11 of the License is EXPRESSLY amended to include a provision stating 
 * that any dispute, including but not limited to disputes related to the enforcement 
 * of the License, to which Composite A/S as owner of the Original Code, as Initial 
 * Developer or in any other role, becomes a part to shall be governed by Danish law 
 * and be initiated before the Copenhagen City Court ("K�benhavns Byret")            
 */

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.1
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Composite.Core.PackageSystem.WebServiceClient
{
    using System.Runtime.Serialization;
    using System;


    /// <summary>    
    /// </summary>
    /// <exclude />
    [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] 
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name = "LicenseDefinitionDescriptor", Namespace = "http://www.composite.net/ns/managemen")]
    [System.SerializableAttribute()]
    public partial class LicenseDefinitionDescriptor : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
    {

        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

        private System.Guid InstallationIdField;

        private System.Guid ProductIdField;

        private bool PermanentField;

        private System.DateTime ExpiresField;        

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string LicenseKeyField;

        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string PurchaseUrlField;


        /// <exclude />
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData
        {
            get
            {
                return this.extensionDataField;
            }
            set
            {
                this.extensionDataField = value;
            }
        }


        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired = true)]
        public System.Guid InstallationId
        {
            get
            {
                return this.InstallationIdField;
            }
            set
            {
                if ((this.InstallationIdField.Equals(value) != true))
                {
                    this.InstallationIdField = value;
                    this.RaisePropertyChanged("InstallationId");
                }
            }
        }


        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired = true)]
        public System.Guid ProductId
        {
            get
            {
                return this.ProductIdField;
            }
            set
            {
                if ((this.ProductIdField.Equals(value) != true))
                {
                    this.ProductIdField = value;
                    this.RaisePropertyChanged("ProductId");
                }
            }
        }


        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired = true, Order = 2)]
        public bool Permanent
        {
            get
            {
                return this.PermanentField;
            }
            set
            {
                if ((this.PermanentField.Equals(value) != true))
                {
                    this.PermanentField = value;
                    this.RaisePropertyChanged("Permanent");
                }
            }
        }


        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(IsRequired = true, Order = 3)]
        public System.DateTime Expires
        {
            get
            {
                return this.ExpiresField;
            }
            set
            {
                if ((this.ExpiresField.Equals(value) != true))
                {
                    this.ExpiresField = value;
                    this.RaisePropertyChanged("Expires");
                }
            }
        }


        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 4)]
        public string LicenseKey
        {
            get
            {
                return this.LicenseKeyField;
            }
            set
            {
                if ((object.ReferenceEquals(this.LicenseKeyField, value) != true))
                {
                    this.LicenseKeyField = value;
                    this.RaisePropertyChanged("LicenseKey");
                }
            }
        }


        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 5)]
        public string PurchaseUrl
        {
            get
            {
                return this.PurchaseUrlField;
            }
            set
            {
                if ((object.ReferenceEquals(this.PurchaseUrlField, value) != true))
                {
                    this.PurchaseUrlField = value;
                    this.RaisePropertyChanged("PurchaseUrl");
                }
            }
        }


        /// <exclude />
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;


        /// <exclude />
        protected void RaisePropertyChanged(string propertyName)
        {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null))
            {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }



    /// <summary>    
    /// </summary>
    /// <exclude />
    [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] 
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace = "http://www.composite.net/ns/managemen", ConfigurationName = "Composite.Core.PackageSystem.WebServiceClient.LicenseDefinitionServiceSoap")]
    public interface LicenseDefinitionServiceSoap
    {

        // CODEGEN: Generating message contract since element name publicKeyXml from namespace http://www.composite.net/ns/managemen is not marked nillable
        /// <exclude />
        [System.ServiceModel.OperationContractAttribute(Action = "http://www.composite.net/ns/managemen/ValidateTrialLicenseDefinitionRequest", ReplyAction = "*")]
        Composite.Core.PackageSystem.WebServiceClient.ValidateTrialLicenseDefinitionRequestResponse ValidateTrialLicenseDefinitionRequest(Composite.Core.PackageSystem.WebServiceClient.ValidateTrialLicenseDefinitionRequestRequest request);

        // CODEGEN: Generating message contract since element name publicKeyXml from namespace http://www.composite.net/ns/managemen is not marked nillable
        /// <exclude />
        [System.ServiceModel.OperationContractAttribute(Action = "http://www.composite.net/ns/managemen/GetTrialLicenseDefinition", ReplyAction = "*")]
        Composite.Core.PackageSystem.WebServiceClient.GetTrialLicenseDefinitionResponse GetTrialLicenseDefinition(Composite.Core.PackageSystem.WebServiceClient.GetTrialLicenseDefinitionRequest request);
    }


    /// <summary>    
    /// </summary>
    /// <exclude />
    [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] 
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
    public partial class ValidateTrialLicenseDefinitionRequestRequest
    {
        /// <exclude />
        [System.ServiceModel.MessageBodyMemberAttribute(Name = "ValidateTrialLicenseDefinitionRequest", Namespace = "http://www.composite.net/ns/managemen", Order = 0)]
        public Composite.Core.PackageSystem.WebServiceClient.ValidateTrialLicenseDefinitionRequestRequestBody Body;


        /// <exclude />
        public ValidateTrialLicenseDefinitionRequestRequest()
        {
        }


        /// <exclude />
        public ValidateTrialLicenseDefinitionRequestRequest(Composite.Core.PackageSystem.WebServiceClient.ValidateTrialLicenseDefinitionRequestRequestBody Body)
        {
            this.Body = Body;
        }
    }



    /// <summary>    
    /// </summary>
    /// <exclude />
    [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] 
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Namespace = "http://www.composite.net/ns/managemen")]
    public partial class ValidateTrialLicenseDefinitionRequestRequestBody
    {
        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(Order = 0)]
        public System.Guid installationId;


        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
        public System.Guid productId;


        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 2)]
        public string publicKeyXml;


        /// <exclude />
        public ValidateTrialLicenseDefinitionRequestRequestBody()
        {
        }


        /// <exclude />
        public ValidateTrialLicenseDefinitionRequestRequestBody(System.Guid installationId, System.Guid productId, string publicKeyXml)
        {
            this.installationId = installationId;
            this.productId = productId;
            this.publicKeyXml = publicKeyXml;
        }
    }


    /// <summary>    
    /// </summary>
    /// <exclude />
    [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] 
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
    public partial class ValidateTrialLicenseDefinitionRequestResponse
    {
        /// <exclude />
        [System.ServiceModel.MessageBodyMemberAttribute(Name = "ValidateTrialLicenseDefinitionRequestResponse", Namespace = "http://www.composite.net/ns/managemen", Order = 0)]
        public Composite.Core.PackageSystem.WebServiceClient.ValidateTrialLicenseDefinitionRequestResponseBody Body;


        /// <exclude />
        public ValidateTrialLicenseDefinitionRequestResponse()
        {
        }


        /// <exclude />
        public ValidateTrialLicenseDefinitionRequestResponse(Composite.Core.PackageSystem.WebServiceClient.ValidateTrialLicenseDefinitionRequestResponseBody Body)
        {
            this.Body = Body;
        }
    }


    /// <summary>    
    /// </summary>
    /// <exclude />
    [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] 
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Namespace = "http://www.composite.net/ns/managemen")]
    public partial class ValidateTrialLicenseDefinitionRequestResponseBody
    {
        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 0)]
        public string ValidateTrialLicenseDefinitionRequestResult;


        /// <exclude />
        public ValidateTrialLicenseDefinitionRequestResponseBody()
        {
        }


        /// <exclude />
        public ValidateTrialLicenseDefinitionRequestResponseBody(string ValidateTrialLicenseDefinitionRequestResult)
        {
            this.ValidateTrialLicenseDefinitionRequestResult = ValidateTrialLicenseDefinitionRequestResult;
        }
    }




    /// <summary>    
    /// </summary>
    /// <exclude />
    [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] 
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
    public partial class GetTrialLicenseDefinitionRequest
    {
        /// <exclude />
        [System.ServiceModel.MessageBodyMemberAttribute(Name = "GetTrialLicenseDefinition", Namespace = "http://www.composite.net/ns/managemen", Order = 0)]
        public Composite.Core.PackageSystem.WebServiceClient.GetTrialLicenseDefinitionRequestBody Body;


        /// <exclude />
        public GetTrialLicenseDefinitionRequest()
        {
        }


        /// <exclude />
        public GetTrialLicenseDefinitionRequest(Composite.Core.PackageSystem.WebServiceClient.GetTrialLicenseDefinitionRequestBody Body)
        {
            this.Body = Body;
        }
    }





    /// <summary>    
    /// </summary>
    /// <exclude />
    [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] 
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Namespace = "http://www.composite.net/ns/managemen")]
    public partial class GetTrialLicenseDefinitionRequestBody
    {
        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(Order = 0)]
        public System.Guid installationId;


        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(Order = 1)]
        public System.Guid productId;


        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 2)]
        public string publicKeyXml;


        /// <exclude />
        public GetTrialLicenseDefinitionRequestBody()
        {
        }


        /// <exclude />
        public GetTrialLicenseDefinitionRequestBody(System.Guid installationId, System.Guid productId, string publicKeyXml)
        {
            this.installationId = installationId;
            this.productId = productId;
            this.publicKeyXml = publicKeyXml;
        }
    }




    /// <summary>    
    /// </summary>
    /// <exclude />
    [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] 
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.MessageContractAttribute(IsWrapped = false)]
    public partial class GetTrialLicenseDefinitionResponse
    {
        /// <exclude />
        [System.ServiceModel.MessageBodyMemberAttribute(Name = "GetTrialLicenseDefinitionResponse", Namespace = "http://www.composite.net/ns/managemen", Order = 0)]
        public Composite.Core.PackageSystem.WebServiceClient.GetTrialLicenseDefinitionResponseBody Body;


        /// <exclude />
        public GetTrialLicenseDefinitionResponse()
        {
        }


        /// <exclude />
        public GetTrialLicenseDefinitionResponse(Composite.Core.PackageSystem.WebServiceClient.GetTrialLicenseDefinitionResponseBody Body)
        {
            this.Body = Body;
        }
    }



    /// <summary>    
    /// </summary>
    /// <exclude />
    [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] 
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Namespace = "http://www.composite.net/ns/managemen")]
    public partial class GetTrialLicenseDefinitionResponseBody
    {
        /// <exclude />
        [System.Runtime.Serialization.DataMemberAttribute(EmitDefaultValue = false, Order = 0)]
        public Composite.Core.PackageSystem.WebServiceClient.LicenseDefinitionDescriptor GetTrialLicenseDefinitionResult;


        /// <exclude />
        public GetTrialLicenseDefinitionResponseBody()
        {
        }


        /// <exclude />
        public GetTrialLicenseDefinitionResponseBody(Composite.Core.PackageSystem.WebServiceClient.LicenseDefinitionDescriptor GetTrialLicenseDefinitionResult)
        {
            this.GetTrialLicenseDefinitionResult = GetTrialLicenseDefinitionResult;
        }
    }



    /// <summary>    
    /// </summary>
    /// <exclude />
    [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] 
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public interface LicenseDefinitionServiceSoapChannel : Composite.Core.PackageSystem.WebServiceClient.LicenseDefinitionServiceSoap, System.ServiceModel.IClientChannel
    {
    }



    /// <summary>    
    /// </summary>
    /// <exclude />
    [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] 
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class LicenseDefinitionServiceSoapClient : System.ServiceModel.ClientBase<Composite.Core.PackageSystem.WebServiceClient.LicenseDefinitionServiceSoap>, Composite.Core.PackageSystem.WebServiceClient.LicenseDefinitionServiceSoap
    {
        /// <exclude />
        public LicenseDefinitionServiceSoapClient()
        {
        }


        /// <exclude />
        public LicenseDefinitionServiceSoapClient(string endpointConfigurationName) :
            base(endpointConfigurationName)
        {
        }


        /// <exclude />
        public LicenseDefinitionServiceSoapClient(string endpointConfigurationName, string remoteAddress) :
            base(endpointConfigurationName, remoteAddress)
        {
        }


        /// <exclude />
        public LicenseDefinitionServiceSoapClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
            base(endpointConfigurationName, remoteAddress)
        {
        }


        /// <exclude />
        public LicenseDefinitionServiceSoapClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
            base(binding, remoteAddress)
        {
        }


        /// <exclude />
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        Composite.Core.PackageSystem.WebServiceClient.ValidateTrialLicenseDefinitionRequestResponse Composite.Core.PackageSystem.WebServiceClient.LicenseDefinitionServiceSoap.ValidateTrialLicenseDefinitionRequest(Composite.Core.PackageSystem.WebServiceClient.ValidateTrialLicenseDefinitionRequestRequest request)
        {
            return base.Channel.ValidateTrialLicenseDefinitionRequest(request);
        }


        /// <exclude />
        public string ValidateTrialLicenseDefinitionRequest(System.Guid installationId, System.Guid productId, string publicKeyXml)
        {
            Composite.Core.PackageSystem.WebServiceClient.ValidateTrialLicenseDefinitionRequestRequest inValue = new Composite.Core.PackageSystem.WebServiceClient.ValidateTrialLicenseDefinitionRequestRequest();
            inValue.Body = new Composite.Core.PackageSystem.WebServiceClient.ValidateTrialLicenseDefinitionRequestRequestBody();
            inValue.Body.installationId = installationId;
            inValue.Body.productId = productId;
            inValue.Body.publicKeyXml = publicKeyXml;
            Composite.Core.PackageSystem.WebServiceClient.ValidateTrialLicenseDefinitionRequestResponse retVal = ((Composite.Core.PackageSystem.WebServiceClient.LicenseDefinitionServiceSoap)(this)).ValidateTrialLicenseDefinitionRequest(inValue);
            return retVal.Body.ValidateTrialLicenseDefinitionRequestResult;
        }


        /// <exclude />
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
        Composite.Core.PackageSystem.WebServiceClient.GetTrialLicenseDefinitionResponse Composite.Core.PackageSystem.WebServiceClient.LicenseDefinitionServiceSoap.GetTrialLicenseDefinition(Composite.Core.PackageSystem.WebServiceClient.GetTrialLicenseDefinitionRequest request)
        {
            return base.Channel.GetTrialLicenseDefinition(request);
        }


        /// <exclude />
        public Composite.Core.PackageSystem.WebServiceClient.LicenseDefinitionDescriptor GetTrialLicenseDefinition(System.Guid installationId, System.Guid productId, string publicKeyXml)
        {
            Composite.Core.PackageSystem.WebServiceClient.GetTrialLicenseDefinitionRequest inValue = new Composite.Core.PackageSystem.WebServiceClient.GetTrialLicenseDefinitionRequest();
            inValue.Body = new Composite.Core.PackageSystem.WebServiceClient.GetTrialLicenseDefinitionRequestBody();
            inValue.Body.installationId = installationId;
            inValue.Body.productId = productId;
            inValue.Body.publicKeyXml = publicKeyXml;
            Composite.Core.PackageSystem.WebServiceClient.GetTrialLicenseDefinitionResponse retVal = ((Composite.Core.PackageSystem.WebServiceClient.LicenseDefinitionServiceSoap)(this)).GetTrialLicenseDefinition(inValue);
            return retVal.Body.GetTrialLicenseDefinitionResult;
        }
    }
}
